package proc

import "errors"

var onlineUsers *OnlineUserMgr

// OnlineUserMgr 在线用户列表
type OnlineUserMgr struct {
	onlineUsers map[int]*UserProc
}

func init()  {
	onlineUsers = &OnlineUserMgr{
		onlineUsers:make(map[int]*UserProc, 1024),
	}
}

func (this *OnlineUserMgr) AddOnlineUser(up *UserProc)  {
	this.onlineUsers[up.UserId] = up
}

func (this *OnlineUserMgr) DeleteOnlineUser(id int) {
	delete(this.onlineUsers, id)
}

func (this *OnlineUserMgr) FindOnlineUserById(id int) (up *UserProc, err error) {
	up, ok := this.onlineUsers[id]
	if !ok {
		err = errors.New("用户" + string(id) + "未登录")
	}
	return
}

func (this *OnlineUserMgr) FindAllOnlineUsers() map[int]*UserProc {
	return this.onlineUsers
}
